---
id: api-core-state
slug: /search-ui/api/core/state
title: State
date: 2022-02-27
tags: ["state"]
---

State can be divided up into a few different types.

1. [Request State](#request-state) - State that is used
   as parameters on Search API calls.
2. [Response State](#response-state) - State that represents a response from a Search API call.
3. [Application State](#application-state) - The general state.

Request State and Response State will often have similar values. For instance, `searchTerm` and `resultSearchTerm`.
`searchTerm` is the current search term in the UI, and `resultSearchTerm` is the term associated with the current
`results`. This can be relevant in the UI, where you might not want the search term on the page to change until AFTER
a response is received, so you'd use the `resultSearchTerm` state.

### Request State

State that is used as parameters on Search API calls.

Request state can be set by:

- Using actions, like `setSearchTerm`
- The `initialState` option.
- The URL query string, if `trackUrlState` is enabled.

| option           | Description                              |
| ---------------- | ---------------------------------------- |
| `current`        | Current page number                      |
| `filters`        | Array of filters. See Filters section.   |
| `resultsPerPage` |                                          |
| `searchTerm`     | Search terms to search for               |
| `sort`           | List of fields and directions to sort on |

### Response State

State that represents a response from a Search API call.

It is not directly update-able.

It is updated indirectly by invoking an action which results in a new API request.

| field                               | description                                                                                                                                                                                                                                                               |
| ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `autocompletedResults`              | An array of results items fetched for an autocomplete dropdown.                                                                                                                                                                                                           |
| `autocompletedResultsRequestId`     | A unique ID for the current autocompleted search results.                                                                                                                                                                                                                 |
| `autocompletedSuggestions`          | A keyed object of query suggestions. It's keyed by type since multiple types of query suggestions can be set here.                                                                                                                                                        |
| `autocompletedSuggestionsRequestId` | A unique ID for the current autocompleted suggestion results.                                                                                                                                                                                                             |
| `facets`                            | Will be populated if `facets` configured in <DocLink id="api-core-configuration" section="facets" text="Search Query Facets Configuration" />.                                                                                                                            |
| `rawResponse`                       | The response object received from the API                                                                                                                                                                                                                                 |
| `requestId`                         | A unique ID for the current search results.                                                                                                                                                                                                                               |
| `results`                           | An array of result items.                                                                                                                                                                                                                                                 |
| `resultSearchTerm`                  | As opposed the the `searchTerm` state, which is tied to the current search parameter, this is tied to the searchTerm for the current results. There will be a period of time in between when a request is started and finishes where the two pieces of state will differ. |
| `totalResults`                      | Total number of results found for the current query.                                                                                                                                                                                                                      |

### Application State

Application state is the general application state.

| field         | description                                                                                                        |
| ------------- | ------------------------------------------------------------------------------------------------------------------ |
| `error`       | Error message, if an error was thrown.                                                                             |
| `isLoading`   | Whether or not a search is currently being performed.                                                              |
| `wasSearched` | Has any query been performed since this driver was created? Can be useful for displaying initial states in the UI. |
